// 函数的参数类型和返回值类型
function add(x: number, y: number): number {
  return x + y;
}
// 函数类型： 函数签名（函数的表达式类型）
type Add = (x: number, y: number) => number;
// 根据函数类型（函数签名）实现具体的函数 --->实现签名
const myAdd: Add = function (x, y) {
  return x + y;
};
// 函数类型： 函数调用签名
interface Add2 {
  (x: number, y: number): number;
  age: number;
}
// 函数类型： 函数构造签名
interface Add3 {
  new (x: number, y: number): object;
}